Ext.define('App.LoginPage', {
     extend : 'Ext.Panel',
//    extend: 'Ext.window.Window',
    /** 页面基本属性配置 */
    title : '登陆 行政办公绩效系统',
    iconCls : 'app-homeIcon',
    width : 380,
    height : 260,
    frame:true,
    renderTo: 'loginBlock',
    layout : {
        type : 'vbox',
        align : 'stretch',
        pack : 'start'
    },
    
    /** 自定义属性,自动生成setter/getter */
    config : {
        loginForm : {},
        focusField : {}
    },
    
    /** 初始化页面组件 */
    initComponent : function() {
        var loginForm = Ext.create('Ext.form.Panel', {
            flex : 2,
            layout : 'anchor',
            bodyPadding : 10,
            margin : '0 -1 -1 -1',
            defaults : {
            	margin : '20 -1 -1 -1',
                xtype : 'textfield',
                labelAlign : 'right',
                labelWidth : 110,
                allowBlank : false,
                anchor : '85%'
//                msgTarget : 'qtip'
            },
            items : [{
                fieldLabel : '帐&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号',
                blankText : '请输入您的登陆账号',
                fieldStyle : 'background:url(image/icon/user.png) no-repeat left center; padding-left:20px; font-weight:bold;',
                name : 'username'
            }, {
                fieldLabel : '密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码',
                blankText : '请输入您的登陆密码',
                fieldStyle : 'background:url(image/icon/key.png) no-repeat left center; padding-left:20px; font-weight:bold;',
                inputType : 'password',
                name : 'password'
            },{
                xtype : 'fieldcontainer',
                layout : 'hbox',
                items : [{
                    xtype : 'container',
                    width :115
                },{
                    flex : 1,
	                xtype : 'checkboxfield',
	                boxLabel : '记住帐号',
                    name : 'remember-username'
	            }, {
                    flex : 1,
	                xtype : 'checkboxfield',
	                boxLabel : '记住密码',
                    name : 'remember-password'
	            }
	            ]
            }]
        });
        
        //添加回车事件
        this.on('afterrender', function(thiz, opts) {
            Ext.create('Ext.util.KeyNav', thiz.getEl(), {
            	
            	enter : this.loginAction, scope : this});
            	
      	  }, this);
        
        this.buttons = [{
            text : '登&nbsp;&nbsp;陆',
//            iconCls : 'app-homeIcon',
            handler : this.loginAction,
            scope : this
        }, {
            text : '重&nbsp;&nbsp;置',
//            iconCls : 'app-homeIcon',
            handler : function(btn) {
             var form = this.getLoginForm().getForm();
                 form.reset();
            },
            scope : this
        }];
        
        this.items = [ loginForm];
        this.initConfig({
            loginForm : loginForm
        });
        
        this.callParent();
        this.on('beforerender', this.loadData, this);
    },
    
    /** 界面显示后加载数据 */
    loadData : function(thiz) {
        var form = thiz.getLoginForm().getForm(); 
        var usernameField = form.findField('username');
        var passwordField = form.findField('password');
        var reUsernameField = form.findField('remember-username');
        var rePasswordField = form.findField('remember-password');
        
        //取出cookies是否记住密码和帐号
        var reUsername = Ext.util.Cookies.get('remember-username');
        var rePassword = Ext.util.Cookies.get('remember-password');
        reUsernameField.setValue(reUsername == 'Y');
        rePasswordField.setValue(rePassword == 'Y');
        
        //根据"记住"情况,给帐号和密码赋值,并确定光标位置
        this.setFocusField(usernameField);
        if(reUsername == 'Y') {
            usernameField.setValue(Ext.util.Cookies.get('username'));
            this.setFocusField(usernameField);
        }
        if(rePassword == 'Y') {
            passwordField.setValue(Ext.util.Cookies.get('password'));
            this.setFocusField(passwordField);
        }
    },
    
    /** 登陆操作 */
    loginAction : function() {
        var form = this.getLoginForm().getForm();
        if(!form.isValid()) {
            return;
        }
        
        var reUsername = form.findField('remember-username').checked;
        var rePassword = form.findField('remember-password').checked;
        
        //有效期为一周
        var expires = new Date(new Date().getTime() + (7 * 24 * 60 * 60 * 1000));
        
        //记住帐号
        if(reUsername) {
            Ext.util.Cookies.set('username', form.findField('username').getValue(), expires);
        } else {
            Ext.util.Cookies.set('username', '');
        }
        
        //记住密码
        if(rePassword) {
            Ext.util.Cookies.set('password', form.findField('password').getValue(), expires);
        } else {
            Ext.util.Cookies.set('password', '');
        }
        
        //记住checkbox
        Ext.util.Cookies.set('remember-username', reUsername ? 'Y' : 'N', expires);
        Ext.util.Cookies.set('remember-password', rePassword ? 'Y' : 'N', expires);
        
        //执行登陆
        this.getEl().mask('正在登陆中，请稍候...');
        Ext.Ajax.request({
            method : 'POST',
            url : 'login.action',
            params : form.getValues(),
            success : function(response, options) {
            	 this.getEl().unmask();
            	 var text =Ext.JSON.decode(response.responseText);
            	 if(text==true){
            	 	document.location='main.jsp';
            	 }else{
            	 	 Ext.Msg.alert('错误信息', '提示: 密码或用户名错误');
            	 } 	
            },
            failure : function(response, options) {
            
			  this.getEl().unmask();
			  	Ext.Msg.alert('错误信息', '提示: 系统错误！！！');
            	 
            },
            scope : this
        });
    }
});

	
